#ifndef __STACK_H__
#define __STACK_H__

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>

//stack data type define
typedef char STDataType;

//stack struct
typedef struct Stack
{
	STDataType* data;
	int top;
	int capacity;
}ST;

//stack init
void STInit(ST* pst);

//stack destroy
void STDestroy(ST* pst);

//stack push
int STPush(ST* pst, STDataType value);

//stack pop
void STPop(ST* pst);

//return stack top
STDataType STTop(ST* pst);

//stack is empty
bool STEmpty(ST* pst);

//stack size
int STSize(ST* pst);


#endif /*__STACK_H__*/